﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.Security;
using BL;
using System.Data;
using SFsoftSite.Profiles;

namespace SFsoftSite.Cliente
{
    public partial class PerfilCliente : System.Web.UI.Page
    {
        #region Atributos

        BLCliente _cliente;
        BLJogos _jogos;

        #endregion

        #region Page Load

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (!Roles.IsUserInRole("Cliente"))
                    Response.Redirect("~/Login.aspx");

                string[] itens = new string[]
                {
                    "Modo de Navegação",
                    "Modo de Design",
                    "Modo de Catálogo",
                    "Modo de Edição"
                };

                cbWebParts.DataSource = itens;
                cbWebParts.DataBind();

                CarregaDadosCliente();
            }
        }

        #endregion

        #region Eventos

        protected void cbWebParts_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cbWebParts.SelectedValue)
            {
                case "Modo de Navegação":
                    WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode;
                    break;

                case "Modo de Design":
                    WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode;
                    break;

                case "Modo de Catálogo":
                    WebPartManager1.DisplayMode = WebPartManager.CatalogDisplayMode;
                    break;

                case "Modo de Edição":
                    WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode;
                    break;
            }
        }

        private void CarregaDadosCliente()
        {
            SFProfile profile = SFProfile.GetProfile();

            if (profile.Cliente.Nome != null && profile.Cliente.Nome != "")
            {
                lblNome.Text = profile.Cliente.Nome;
                lblEmail.Text = profile.Cliente.Email == "" ? HttpContext.Current.User.Identity.Name : profile.Cliente.Email;
                lblEndereco.Text = profile.Cliente.Endereco;
                lblTelefone.Text = profile.Cliente.Telefone;

                if (profile.Cliente.Foto != string.Empty)
                    imgFotoCliente.Src = "../Resources/Images/Upload/Cliente/" + profile.Cliente.Foto;

                CarregaJogosCliente(profile.Cliente.ID);
            }
            else
            {
                _cliente = new BLCliente();

                DataTable dt = _cliente.GetClienteByEmail(HttpContext.Current.User.Identity.Name);

                if (dt == null) Response.Redirect("~/Jogos/ListarJogos.aspx");

                int idcli = Convert.ToInt32(dt.Rows[0]["ID"].ToString());
                lblNome.Text = dt.Rows[0]["Nome"].ToString();
                lblEmail.Text = dt.Rows[0]["Email"].ToString();
                lblEndereco.Text = dt.Rows[0]["Endereco"].ToString();
                lblTelefone.Text = dt.Rows[0]["Telefone"].ToString();

                if (dt.Rows[0]["Foto"].ToString() != string.Empty)
                    imgFotoCliente.Src = "../Resources/Images/Upload/Cliente/" + dt.Rows[0]["Foto"].ToString();

                CarregaJogosCliente(idcli);
            }
        }

        private void CarregaJogosCliente(int id)
        {
            _jogos = new BLJogos();

            rptJogos.DataSource = _jogos.GetJogosByCliente(id);
            rptJogos.DataBind();
        }

        #endregion
    }
}